package com.quantice.database;

import java.util.ArrayList;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;
import android.widget.Toast;

import com.quantice.Constants.StrConst;
import com.quantice.RowList.RowList;

public class DataBaseManager {
	private Context context;

	public DataBaseManager(Context context) {
		this.context = context;
	}

	//
	// public void insertMessage(String idContact,int origin,String message){
	// //origin 1 => el usuario de la aplicacion envia el mensaje.
	// //origin 0 => el usuario recibe el mensaje.
	//
	// insertMessage(idContact,origin,message,System.currentTimeMillis());
	//
	// }
	//
	// public void insertMessage(String idContact,int origin,String message,long
	// time){
	// AsyncTask<String,Void, Void> insertChatMessageSQL = new
	// AsyncTask<String,Void, Void>(){
	//
	// @Override
	// protected Void doInBackground(String... args) {
	// SQLiteHelper setiDB = new SQLiteHelper(context, "BBDDSetichat", null,
	// SQLiteHelper.SQL_VERSION);
	// SQLiteDatabase db = setiDB.getWritableDatabase();
	// if(db!=null){
	// SQLiteStatement stmt =
	// db.compileStatement("INSERT INTO messages (idContact,origin,message,time) VALUES(?,?,?,?)");
	// stmt.bindString(1, args[0]);
	// stmt.bindString(2, args[1]);
	// stmt.bindString(3, args[2]);
	// stmt.bindString(4, args[3]);
	// stmt.execute();
	// }
	// db.close();
	// setiDB.close();
	//
	// return null;
	// }
	//
	//
	// };
	//
	// insertChatMessageSQL.execute(idContact,String.valueOf(origin),message,String.valueOf(time));
	// }

	public void insertItem(String id, String date, String cantidad) {
		String nameTable = new String();
		if (id.startsWith(StrConst.gastos)) {
			nameTable =StrConst.gastos;
		} else if (id.startsWith(StrConst.ingresos)) {
			nameTable = StrConst.ingresos;
		} else {
			Toast.makeText(this.context, "Error al crear la base de datos",
					Toast.LENGTH_SHORT).show();
		}
		SQLiteHelper dbHelper = new SQLiteHelper(context, SQLiteHelper.BBDDQUANTICE, null,
				SQLiteHelper.SQL_VERSION);
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		if (db != null) {
			SQLiteStatement stmt = db
					.compileStatement("INSERT INTO "+nameTable+" (id,fecha,cantidad) VALUES(?,?,?)");
			stmt.bindString(1, id);
			stmt.bindString(2, date);
			stmt.bindString(3, cantidad);
			stmt.execute();
		}
		db.close();
		dbHelper.close();
	}

	public ArrayList<RowList> getAllItems(String nameTable) {
		ArrayList<RowList> rowList = new ArrayList<RowList>();

		SQLiteHelper setiDB = new SQLiteHelper(context, SQLiteHelper.BBDDQUANTICE, null,
				SQLiteHelper.SQL_VERSION);

		SQLiteDatabase db = setiDB.getReadableDatabase();
		Cursor c = db.query(nameTable,
				new String[] { "id", "fecha", "cantidad" }, null, null, null,
				null, null);

		c.moveToFirst();
		while (!c.isAfterLast()) {
			RowList aux = new RowList(c.getString(0), c.getString(1),
					c.getString(2));
			rowList.add(aux);
			c.moveToNext();
		}
		c.close();
		db.close();
		setiDB.close();

		return rowList;
	}

}